package com.hongyun.tms.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hongyun.tms.common.PageResponseDto;
import com.hongyun.tms.common.dto.pordwork.PordWorkQueryDto;
import com.hongyun.tms.common.dto.pordwork.PordWorkSaveReqDto;
import com.hongyun.tms.common.dto.pordwork.PordWorkSpecialQueryDto;
import com.hongyun.tms.common.vo.PordWorkVO;
import com.hongyun.tms.entity.PordWork;

import java.util.List;

/**
 * <p>
 * 拖轮作业记录表 服务类
 * </p>
 *
 * @author liPeng
 * @since 2024-06-24
 */
public interface IPordWorkService extends IService<PordWork> {
    /**
     * 普通的作业记录(不包含特殊作业记录)
     *
     * @param query params
     * @return page
     */
    PageResponseDto<PordWorkVO> pageList(PordWorkQueryDto query);

    /**
     * 特殊作业记录列表
     *
     * @param query query
     * @return specialList
     */
    PageResponseDto<PordWorkVO> pageSpecialList(PordWorkSpecialQueryDto query);

    void saveOrUpdatePordWork(PordWorkSaveReqDto dto);

    PordWorkVO detail(Long id);

    /**
     * 特殊作业记录-总计费
     *
     * @param query 查询
     * @return fee
     */
    String specialListTotalAmount(PordWorkSpecialQueryDto query);

    /**
     * 导出特殊作业记录
     *
     * @param query      查询
     * @param exportType 导出类型，1表示特殊作业记录，2表示特殊作业计费。两者只相差一个字段fee
     * @return list
     */
    List<?> exportSpecialList(PordWorkSpecialQueryDto query, int exportType);
}
